The number of television programs available to users have dramatically increased over the years. Today there are numerous streaming services that offer thousands of video on demand (VOD) programs. Even traditional cable networks like ABC, CBS, and NBC have started their own streaming services in their efforts to capture the users' attention and loyalty. In addition to all of the available VOD programs, there are also numerous broadcast programs that are available to the users. Consequently, users now face a sea of readily available programs in which they have to wade through in order to find something to watch. One way to help users discover programs to enjoy is to provide useful data analytics such as most watched programs, currently trending programs, number of current viewers, etc.
One of the most used methods for obtaining viewing data (i.e., what the user is current watching) is to execute a direct query to the user device. However, in an open development environment, this method is not always available due to the lack of control of third party channels. Accordingly, an alternative and accurate method is needed for collecting viewing data.